//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================

#if !defined(_CONSOLECMDDIC_H_)
#define _CONSOLECMDDIC_H_

typedef int (*ConfigCmdProc)(int argc, wchar_t **argv);

typedef struct {
    wchar_t * pwszCmdName;
    ConfigCmdProc pCmdProc;
    wchar_t * pwszBriefHelp;
    wchar_t * pwszDetailedHelp;
} ConfigConsoleCmd;

extern int g_Console;

EXTERN_C void __stdcall InitConsole();
EXTERN_C void __stdcall DestroyConsole();

EXTERN_C ECode __stdcall _SysRegisterCommand(/* [in] */ConfigConsoleCmd *pCmd);
EXTERN_C ECode __stdcall _SysUnregsterRegisterCommand(/* [in] */wchar_t *pwszCmdName);
EXTERN_C ConfigConsoleCmd * __stdcall ConfigGetCommand(/* [in] */wchar_t *pwszCmdName);
EXTERN_C ConfigConsoleCmd * __stdcall ConfigGetAllCommand();
#endif //_CONSOLECMDDIC_H_
